package hongcheng.code_generator.database;

import hongcheng.code_generator.entity.config.CodeGeneratorConfig;
import hongcheng.code_generator.entity.config.DataBaseConfig;
import hongcheng.code_generator.entity.db.TableMetadata;

/**
 * 	读取数据库表元数据接口
 * */
public abstract class AbstractDBMetadataReader {
	
	private CodeGeneratorConfig config;
	private String dbName;
	private String tableName;
	private String url;
	private String user;
	private String password;
	
	
	
	
	/**
	 * 	构造函数
	 * */
	public AbstractDBMetadataReader(CodeGeneratorConfig config) {
		super();
		this.config = config;
		DataBaseConfig dataBaseConfig = config.getDbConfig();
		this.dbName = dataBaseConfig.getDbName();
		this.tableName = config.getClassConfig().getTableName();
		this.url = dataBaseConfig.getUrl();
		this.user = dataBaseConfig.getUserName();
		this.password = dataBaseConfig.getPassword();
	}



	/**
	 * 	获取数据库元数据
	 * */
	public abstract TableMetadata getDBMetadata() ;
	
	
	/**
	 * 	获取要操作的表名
	 * */
	public String getTableName() {
		return tableName;
	}



	/***
	 * 	设置要操作的表名
	 * */
	public void setTableName(String tableName) {
		this.tableName = tableName;
	}



	/**
	 * 	获取数据库访问地址
	 * */
	public String getUrl() {
		return url;
	}



	/***
	 * 	设置数据库访问地址
	 * */
	public void setUrl(String url) {
		this.url = url;
	}



	/**
	 * 	获取数据库名
	 * */
	public String getDbName() {
		return dbName;
	}
	/***
	 * 	设置数据库名
	 * */
	public void setDbName(String dbName) {
		this.dbName = dbName;
	}
	/**
	 * 	获取数据库连接用户名
	 * */
	public String getUser() {
		return user;
	}



	/**
	 * 	设置数据库连接用户名
	 * */
	public void setUser(String user) {
		this.user = user;
	}



	/**
	 * 	获取数据库连接密码
	 * */
	public String getPassword() {
		return password;
	}



	/**
	 * 	设置数据库连接密码
	 * */
	public void setPassword(String password) {
		this.password = password;
	}


	/**
	 * 	获取配置文件配置
	 * */
	public CodeGeneratorConfig getConfig() {
		return config;
	}


	/**
	 * 	设置配置文件配置
	 * */
	public void setConfig(CodeGeneratorConfig config) {
		this.config = config;
	}
	
	
}
